package thread.state;

/**
 * @author 真香
 * @create 2021-06-03 17:59
 */

import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;

/**
 *
 * 测试 stop 停止线程
 * 1、建议线程正常停止---使用次数，不建议使用死循环
 * 2、建议使用标志位----设置一个标志位
 * 3、不要使用stop 或者destroy等过时的方法
 *
 *
 */
public class TestStop implements Runnable {

    // 1、设置一个标志位
    private Boolean flag = true;



    @Override
    public void run() {
        int i = 0;
        if (flag) {
            System.out.println("Thread run......"+i++);
        }
    }

    // 2、设置一个自定义的停止线程方法
    public void stop (){
        this.flag = false;
    }

    public static void main(String[] args){

        TestStop testStop = new TestStop();

        new Thread(testStop).start();

        for (int i = 0; i < 1000; i++) {
            System.out.println("main.."+i);
            if (i == 900) {
                // 3、 调用停止线程方法
                testStop.stop();
                System.out.println("线程该停止了");
            }
        }


    }

}
